﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;
using Teigha.Core;

namespace Teigha.TD
{
	public class OdDbGroup : OdDbObject
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdDbGroup(IntPtr cPtr, bool cMemoryOwn) : base(TD_DbPINVOKE.OdDbGroup_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdDbGroup obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdDbGroup()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							TD_DbPINVOKE.delete_OdDbGroup(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public new static OdDbGroup cast(OdRxObject pObj)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbGroup_cast(OdRxObject.getCPtr(pObj));
			OdDbGroup result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbGroup)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbGroup)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbGroup)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdRxClass desc()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbGroup_desc(), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbGroup_isA(this.swigCPtr), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass protocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(TD_DbPINVOKE.OdDbGroup_queryX(this.swigCPtr, OdRxClass.getCPtr(protocolClass)), false);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdDbGroup createObject()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbGroup_createObject();
			OdDbGroup result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbGroup)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbGroup)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbGroup)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdDbGroupIterator newIterator()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbGroup_newIterator(this.swigCPtr);
			OdDbGroupIterator result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbGroupIterator)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbGroupIterator)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbGroupIterator)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public string description()
		{
			string result = TD_DbPINVOKE.OdDbGroup_description(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setDescription(string description)
		{
			TD_DbPINVOKE.OdDbGroup_setDescription(this.swigCPtr, description);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool isSelectable()
		{
			bool result = TD_DbPINVOKE.OdDbGroup_isSelectable(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setSelectable(bool selectable)
		{
			TD_DbPINVOKE.OdDbGroup_setSelectable(this.swigCPtr, selectable);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public string name()
		{
			string result = TD_DbPINVOKE.OdDbGroup_name(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setName(string name)
		{
			TD_DbPINVOKE.OdDbGroup_setName(this.swigCPtr, name);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public bool isNotAccessible()
		{
			bool result = TD_DbPINVOKE.OdDbGroup_isNotAccessible(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool isAnonymous()
		{
			bool result = TD_DbPINVOKE.OdDbGroup_isAnonymous(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void setAnonymous()
		{
			TD_DbPINVOKE.OdDbGroup_setAnonymous(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void append(OdDbObjectId objectId)
		{
			TD_DbPINVOKE.OdDbGroup_append__SWIG_0(this.swigCPtr, OdDbObjectId.getCPtr(objectId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void append(OdDbObjectIdArray objectIds)
		{
			TD_DbPINVOKE.OdDbGroup_append__SWIG_1(this.swigCPtr, OdDbObjectIdArray.getCPtr(objectIds));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void prepend(OdDbObjectId objectId)
		{
			TD_DbPINVOKE.OdDbGroup_prepend__SWIG_0(this.swigCPtr, OdDbObjectId.getCPtr(objectId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void prepend(OdDbObjectIdArray objectIds)
		{
			TD_DbPINVOKE.OdDbGroup_prepend__SWIG_1(this.swigCPtr, OdDbObjectIdArray.getCPtr(objectIds));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void insertAt(uint insertionIndex, OdDbObjectId objectId)
		{
			TD_DbPINVOKE.OdDbGroup_insertAt__SWIG_0(this.swigCPtr, insertionIndex, OdDbObjectId.getCPtr(objectId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void insertAt(uint insertionIndex, OdDbObjectIdArray objectIds)
		{
			TD_DbPINVOKE.OdDbGroup_insertAt__SWIG_1(this.swigCPtr, insertionIndex, OdDbObjectIdArray.getCPtr(objectIds));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void remove(OdDbObjectId objectId)
		{
			TD_DbPINVOKE.OdDbGroup_remove__SWIG_0(this.swigCPtr, OdDbObjectId.getCPtr(objectId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void removeAt(uint entityIndex)
		{
			TD_DbPINVOKE.OdDbGroup_removeAt__SWIG_0(this.swigCPtr, entityIndex);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void remove(OdDbObjectIdArray objectIds)
		{
			TD_DbPINVOKE.OdDbGroup_remove__SWIG_1(this.swigCPtr, OdDbObjectIdArray.getCPtr(objectIds));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void removeAt(uint index, OdDbObjectIdArray objectIds)
		{
			TD_DbPINVOKE.OdDbGroup_removeAt__SWIG_1(this.swigCPtr, index, OdDbObjectIdArray.getCPtr(objectIds));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void replace(OdDbObjectId oldId, OdDbObjectId newId)
		{
			TD_DbPINVOKE.OdDbGroup_replace(this.swigCPtr, OdDbObjectId.getCPtr(oldId), OdDbObjectId.getCPtr(newId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void transfer(uint fromIndex, uint toIndex, uint numItems)
		{
			TD_DbPINVOKE.OdDbGroup_transfer(this.swigCPtr, fromIndex, toIndex, numItems);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void clear()
		{
			TD_DbPINVOKE.OdDbGroup_clear(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public uint numEntities()
		{
			uint result = TD_DbPINVOKE.OdDbGroup_numEntities(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public bool has(OdDbEntity pEntity)
		{
			bool result = TD_DbPINVOKE.OdDbGroup_has(this.swigCPtr, OdDbEntity.getCPtr(pEntity));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public uint allEntityIds(OdDbObjectIdArray objectIds)
		{
			uint result = TD_DbPINVOKE.OdDbGroup_allEntityIds(this.swigCPtr, OdDbObjectIdArray.getCPtr(objectIds));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public void getIndex(OdDbObjectId objectId, out uint index)
		{
			TD_DbPINVOKE.OdDbGroup_getIndex(this.swigCPtr, OdDbObjectId.getCPtr(objectId), out index);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void reverse()
		{
			TD_DbPINVOKE.OdDbGroup_reverse(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setColorIndex(ushort colorIndex)
		{
			TD_DbPINVOKE.OdDbGroup_setColorIndex(this.swigCPtr, colorIndex);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setColor(OdCmColor color)
		{
			TD_DbPINVOKE.OdDbGroup_setColor(this.swigCPtr, OdCmColor.getCPtr(color));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setLayer(string layer)
		{
			TD_DbPINVOKE.OdDbGroup_setLayer__SWIG_0(this.swigCPtr, layer);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setLayer(OdDbObjectId layerId)
		{
			TD_DbPINVOKE.OdDbGroup_setLayer__SWIG_1(this.swigCPtr, OdDbObjectId.getCPtr(layerId));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setLinetype(string linetype)
		{
			TD_DbPINVOKE.OdDbGroup_setLinetype__SWIG_0(this.swigCPtr, linetype);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setLinetype(OdDbObjectId linetypeID)
		{
			TD_DbPINVOKE.OdDbGroup_setLinetype__SWIG_1(this.swigCPtr, OdDbObjectId.getCPtr(linetypeID));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setLinetypeScale(double linetypeScale)
		{
			TD_DbPINVOKE.OdDbGroup_setLinetypeScale(this.swigCPtr, linetypeScale);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setVisibility(Visibility visibility)
		{
			TD_DbPINVOKE.OdDbGroup_setVisibility(this.swigCPtr, (int)visibility);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setPlotStyleName(string plotStyleName)
		{
			TD_DbPINVOKE.OdDbGroup_setPlotStyleName(this.swigCPtr, plotStyleName);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public void setLineweight(LineWeight lineWeight)
		{
			TD_DbPINVOKE.OdDbGroup_setLineweight(this.swigCPtr, (int)lineWeight);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public OdResult setHighlight(bool newVal)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbGroup_setHighlight(this.swigCPtr, newVal);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdResult setMaterial(string materialName)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbGroup_setMaterial__SWIG_0(this.swigCPtr, materialName);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public OdResult setMaterial(OdDbObjectId materialID)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbGroup_setMaterial__SWIG_1(this.swigCPtr, OdDbObjectId.getCPtr(materialID));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdResult dwgInFields(OdDbDwgFiler pFiler)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbGroup_dwgInFields(this.swigCPtr, OdDbDwgFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void dwgOutFields(OdDbDwgFiler pFiler)
		{
			TD_DbPINVOKE.OdDbGroup_dwgOutFields(this.swigCPtr, OdDbDwgFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdResult dxfInFields(OdDbDxfFiler pFiler)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbGroup_dxfInFields(this.swigCPtr, OdDbDxfFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void dxfOutFields(OdDbDxfFiler pFiler)
		{
			TD_DbPINVOKE.OdDbGroup_dxfOutFields(this.swigCPtr, OdDbDxfFiler.getCPtr(pFiler));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void copied(OdDbObject pObject, OdDbObject pNewObject)
		{
			TD_DbPINVOKE.OdDbGroup_copied(this.swigCPtr, OdDbObject.getCPtr(pObject), OdDbObject.getCPtr(pNewObject));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void appendToOwner(OdDbIdPair idPair, OdDbObject pOwnerObject, OdDbIdMapping ownerIdMap)
		{
			TD_DbPINVOKE.OdDbGroup_appendToOwner(this.swigCPtr, OdDbIdPair.getCPtr(idPair), OdDbObject.getCPtr(pOwnerObject), OdDbIdMapping.getCPtr(ownerIdMap));
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdResult subGetClassID(IntPtr pClsid)
		{
			OdResult result = (OdResult)TD_DbPINVOKE.OdDbGroup_subGetClassID(this.swigCPtr, pClsid);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void subClose()
		{
			TD_DbPINVOKE.OdDbGroup_subClose(this.swigCPtr);
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdDbObject subWblockClone(OdDbIdMapping ownerIdMap, OdDbObject arg1)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbGroup_subWblockClone(this.swigCPtr, OdDbIdMapping.getCPtr(ownerIdMap), OdDbObject.getCPtr(arg1));
			OdDbObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual OdDbObject subDeepClone(OdDbIdMapping ownerIdMap, OdDbObject arg1)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = TD_DbPINVOKE.OdDbGroup_subDeepClone(this.swigCPtr, OdDbIdMapping.getCPtr(ownerIdMap), OdDbObject.getCPtr(arg1));
			OdDbObject result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdDbObject)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (TD_DbPINVOKE.SWIGPendingException.Pending)
			{
				throw TD_DbPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private object locker = new object();

		private HandleRef swigCPtr;
	}
}
